package com.yunxi.otd.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.ApiResult;
import com.yunxi.otd.pojo.VehicleConfigConstraintVO;
import java.util.List;
import java.util.Map;

/**o
 * <p>
 * 整车配置约束规则 服务类
 * </p>
 *
 * @author XUQI
 * @since 2019-08-05
 */
public interface VehicleConfigConstraintDubboService {

    VehicleConfigConstraintVO getById(String id);

    ApiResult saveOrUpdate(VehicleConfigConstraintVO vehicleConfigConstraintVO);

    void removeByIds(List<String> ids);

    PageInfo findPageByVO(VehicleConfigConstraintVO vehicleConfigConstraintVO,
        Integer pageNum, Integer pageSize);

    List listByVo(VehicleConfigConstraintVO vehicleConfigConstraintVO);

    ApiResult getEngineeringConfig(String vehicleCode,String inColor, String outColor, String packages);

    /**
     * 查询与选装包A互斥的其他选装包
     * @param packages 选装包A
     * @return  互斥的其他选装包
     */
    ApiResult findExcludeCustomPackCode(List<String> packages);

    /**
     *  根据 featureCode 查询必选选装包
     * @param featureCode （颜色Code）
     * @return 必选选装包
     */
    Map<String, List<Object>> findRequiredPackagesByFeatureCode(List<String> featureCode, String vehicleCode);
}
